package ace.module.account.core.impl.service.member;

import ace.module.common.api.model.input.TenantInput;
import ace.module.common.api.model.input.TenantPageInput;
import ace.module.account.api.model.dto.IamAccountDetailDto;
import ace.module.account.api.model.input.IamAccountCommonInfoOutInput;
import ace.module.account.api.model.input.IamAccountFilterInput;
import ace.module.account.api.model.input.IamAccountModifyStatusInput;
import ace.module.account.api.model.input.register.RegisterQuickByPhoneNoOutInput;
import java.util.List;
import org.springframework.data.domain.Page;

/**
 * 会员服务.
 *
 * @author Caspar
 */
public interface MemberService {

  Page<IamAccountDetailDto> adminSearch(
      TenantPageInput<IamAccountFilterInput> tenantPageInput);

  Long adminAddByPhone(TenantInput<RegisterQuickByPhoneNoOutInput> input);

  void adminModifyCommonInfo(IamAccountCommonInfoOutInput input);

  void adminModifyStatus(IamAccountModifyStatusInput input);

  void adminRemove(List<Long> accountIds);
}
